package com.feiwo.nonego.rpc.loadbalancer.api;

import com.feiwo.nonego.rpc.spi.annotation.SPI;

import java.util.List;

/**
 *
 *
 * @author feiwo 2025-08-12
 */
@SPI
public interface ServiceLoadBalancer<T> {

    /**
     * 以负载均衡的方式选取一个服务节点
     * @param servers 服务节点列表
     * @param hashCode 服务 hashCode
     * @param sourceIp 源IP地址
     * @return 服务节点
     */
    T select(List<T> servers, int hashCode, String sourceIp);

}
